package basic12;

public class J22_String {
	public static void main(String[] args) {
		// 문자열 클래스 다루기
		// 주민번호를 이용해서 성별확인
		// 앞이 9 : 남자 8 : 여자
		String jumin = "123456-9876543";
		System.out.println("문자열 길이 : " + jumin.length());
		System.out.println("성별문자 : " + jumin.charAt(7));
		System.out.println("성별문자 : " + jumin.substring(7));
		System.out.println("성별문자" + jumin.substring(7, 8));

		String msg = "hello";
		if (msg == "hello")
			System.out.println("일치함!!");
		else
			System.out.println("일치안함!!");

		String msg2 = "hello";
		if (msg == msg2)
			System.out.println("일치함!!");
		else
			System.out.println("일치안함!!");

		String msg3 = new String("java");
		String msg4 = new String("java");
		String msg5 = new String("hello");

		// msg3과 msg4가 메모리에 생성된 위치(주소)가 다름
		// String 객체 비교시 == 연산자는 참조된 주소의 동질성을 확인함
		if (msg3 == msg4)
			System.out.println("일치함!!");
		else
			System.out.println("일치안함!!");

		// msg(리터럴)와 msg3(new)을 비교
		// msg와 msg5는 메모리에 생성된 위치(주소)가 다름
		// == 연산자로 비교해 보면 '불일치' 로 출력
		if (msg == msg5)
			System.out.println("일치함!");
		else
			System.out.println("일치안함");

		/* ------------------------------------------------------------- */
		// 문자열 연결시 + 연산자를 사용하면 필요없는 객체 생성이
		// 동반되어 메모리 사용율과 CPU자원이 소모
		// 따라서, StringBuilder 나 StringBuffer를 사용할 것을 추천!!
		String sql="update BookDB"+"set title=?, publish=?,author=?"+
		"regdate=sysdate" + "where id=?";
		
		StringBuilder sql2=new StringBuilder(); 
		sql2.append( " update BookDB" ) .append("set title=?, publish=?,author=?")
		.append("regdate=sysdate").append("where id=?");
		System.out.println(sql2); //자동형변환
		String tmp=sql2.toString();//수동형변환
		System.out.println(tmp);
		
		
		
		
	}
}
